import { ReqGetUserInfo,ReqLogout } from "@/api";
import { removeToken } from "@/utils/auth";
import router from "@/router"
const state = {
    userInfo: {}
}

const mutations = {
    //保存用户数据
    SAVE_USER_INFO(state, value) {
        state.userInfo = value;
    },
    //清除用户信息
    CLEAR_USER_INFO(state){
        state.userInfo = {}
    }
}

const actions = {
    //请求获取用户信息
    async getUserInfo({ commit }) {
        try {
            // 向后台发送请求获取用户数据
            let data = await ReqGetUserInfo();
            console.log(data);
            // 调用 mutations 方法 同步更新state数据
            commit("SAVE_USER_INFO", data)
        } catch (error) {
            return Promise.reject();
        }
        
    },
    //退出登录
    async logout({commit}){
        
        // 向后台请求 删除 token
        await ReqLogout();
        // 删除 本地token
        removeToken()
        // 删除 vuex 用户数据信息
            commit("CLEAR_USER_INFO");
        
            
         // 跳转至登录页面
        router.push("/login")

    }
}

const getters = {

}

export default {
    namespaced: true,
    state,
    mutations,
    actions,
    getters
}